package com.dc.refactoring._2_在对象之间搬移特性._5_HideDelegate;


import com.dc.refactoring._2_在对象之间搬移特性._5_HideDelegate.oldObject.Person;

public class Main {

    /**
     * 客户想获取某人的经理是谁
     */
    public static void main(String[] args) {
        // 改造前
        Person oldPerson = new Person();
        // 这种写法会对客户揭露 Department 的工作原理
        oldPerson.getDepartment().getManage();

        // 改造后
        com.dc.refactoring._2_在对象之间搬移特性._5_HideDelegate.newObject.Person newPerson = new com.dc.refactoring._2_在对象之间搬移特性._5_HideDelegate.newObject.Person();
        // 对客户隐藏了 通过Department可以追踪“经理”这条信息
        newPerson.getManager();
    }
}
